จินตนาการข้อมูลดิบเป็นลำดับที่ไม่มีป้ายกำกับ—ดินแดนอันกว้างใหญ่ของหน่วยความจำ ในรัสต์ เราเริ่มต้นด้วยการจัดการข้อมูลในรูปแบบ ชิ้นส่วนต่อเนื่อง (slice และ array) การเปลี่ยนผ่านจากข้อมูลดิบสู่โครงสร้างที่กำหนดไว้ หมายถึงการเปลี่ยนจากหน่วยความจำที่ไม่มีชื่อไปยัง โครงสร้างที่มีจุดประสงค์.
1. ระดับข้อมูลดิบ
Slice และอาร์เรย์แสดงข้อมูลในรูปแบบง่ายที่สุด ความปลอดภัยจะถูกควบคุมผ่าน การตรวจสอบกรรมสิทธิ์เวลาคอมไพล์ แทนที่จะใช้การใช้ทรัพยากรในช่วงเวลาทำงาน การใช้การยืม (&) ทำให้เราสามารถสร้าง "มุมมอง" ของข้อมูลโดยไม่ต้องย้ายค่า
2. ข้อจำกัดด้านความหมาย
แม้ว่าฟังก์ชันเช่น first_word จะยืดหยุ่น (ยอมรับ String, &str, หรือตัวแปรคงที่) แต่พวกมันมีข้อจำกัดด้านความหมาย คอมไพเลอร์รู้ว่าหน่วยความจำปลอดภัย แต่ไม่ทราบว่าข้อมูลนี้ หมายถึงอะไร (เช่น ชื่อผู้ใช้ เทียบกับอ่านค่าเซนเซอร์) จนกว่าเราจะจับคู่ข้อมูลนี้กับ Struct.